#!/bin/bash

#1 获取输入参数个数，如果没有参数，直接退出
FILE_COUNT=$#
if((FILE_COUNT<2)); then
    echo ">>> 错误：未传递文件参数！"
    echo "  用法：mongoDB_docker.sh rootName rootPassword"
    exit;
fi
# 密码
MONGO_ROOT_USERNAME=$1
MONGO_ROOT_PASSWORD=$2
# 启动
docker run -d \
    --privileged=true \
    -v /etc/localtime:/etc/localtime:ro \
    -p 27017:27017 \
    --name mongo \
    -e MONGO_INITDB_ROOT_USERNAME=$MONGO_ROOT_USERNAME \
    -e MONGO_INITDB_ROOT_PASSWORD=$MONGO_ROOT_PASSWORD \
    -v /opt/module/mongodb/db:/data/db \
    -v /opt/module/mongodb/configdb:/data/configdb \
    mongo \
    --auth

docker ps -a | grep mongo
# ====================== 参数解释 ==========================
# -d表示在后台运行
# -p表示将MongoDB的默认端口27017映射到本机的27017端口上面
# –name表示容器的名字
# --volume为本地和容器内做映射
# –restart=always表示docker一启动就会运行mongo
# -e MONGO_INITDB_ROOT_USERNAME=zhouym表示mongo的用户名设置为root
# -e MONGO_INITDB_ROOT_PASSWORD=123表示密码设置为123
# --auth是开启权限认证
# mongo表示镜像名，根据你前面下载下来的name

# 连接工具
# https://robomongo.org/download

# =============== 进入容器内部创建用户 ==================
# mongo --host 127.0.0.1:27017
# use admin
# db.auth("root","123456")
# db.createUser(
#       {
#         user: "mg_user",
#         pwd: "mg_pwd",
#         roles: [ { role: "dbOwner", db: "mg_db" } ]
#       }
# )